<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./Ajax.js"></script>
</head>

<body>
    <script>
        let p = new Promise(function (resolve, reject) {
            Ajax({
                url: '../5.1data1.php',
                success: function (res) {
                    // 把拿到的data1当做参数用resolve调用
                    // 当resolve调用的时候，相当于调用then()
                    resolve(res);
                }
            });
        });
        p.then(function (nres) {
            // nres == res 因为是异步，所以也只能在里面才获得结果 ，在外面获取不到
            // console.log(nres);
            let p1 = new Promise(function (resolve, reject) {
                Ajax({
                    url: '../5.2data2.php',
                    data: {
                        // 把data1的结果当做参数给data2进行操作
                        data1: nres,
                    },
                    success: function (res1) {
                        // 获得的data2操作后的结果
                        // 当resolve调用的时候，相当于调用then()
                        resolve(res1);
                    },
                });
            });
            return p1;
        })
        .then(function (nres1) {
            // console.log(nres1);
            let p2 = new Promise(function (resolve, reject) {
                Ajax({
                    url: '../5.3data3.php',
                    data: {
                        data2: nres1
                    },
                    success: function (res2) {
                        resolve(res2);
                    },
                });

            });
            console.log(p2);
            return p2;
            
        })
        .then(function (nres2) {
            console.log(nres2);
        })
        .catch(function(err){
            console.log(err);
        });
        /* 
            上面的相比于 5.1CBdiyu 的 then()写在了外面，并不是所有的then()都写在了第一个then()里面
            不过需要返回一个Promise对象才行

        */
    </script>
</body>

</html>